package cn.zwk.drawing.domain.diagram.model;

/**
 * 图表类型枚举
 */
public enum DiagramType {
    
    /**
     * 组件图
     */
    COMPONENT("component", "组件图"),
    
    /**
     * 部署图
     */
    DEPLOYMENT("deployment", "部署图"),
    
    /**
     * 序列图
     */
    SEQUENCE("sequence", "序列图"),
    
    /**
     * 用例图
     */
    USECASE("usecase", "用例图"),
    
    /**
     * 类图
     */
    CLASS("class", "类图"),
    
    /**
     * 活动图
     */
    ACTIVITY("activity", "活动图"),
    
    /**
     * 网络图
     */
    NETWORK("network", "网络图");
    
    private final String code;
    private final String description;
    
    DiagramType(String code, String description) {
        this.code = code;
        this.description = description;
    }
    
    public String getCode() {
        return code;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 根据代码获取图表类型
     */
    public static DiagramType fromCode(String code) {
        for (DiagramType type : values()) {
            if (type.code.equals(code)) {
                return type;
            }
        }
        return COMPONENT; // 默认为组件图
    }
}